package com.saturday.common.model;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Data
public class UserContext implements Serializable {

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 用户登陆名
     */
    private String username;

    /**
     * 角色名称
     */
    private String roleName;

    /**
     * 角色编码
     */
    private String roleId;

    /**
     * 机构编码
     */
    private String organizationId;

    /**
     * 当前机构及其子机构
     */
    private List<String> organizationIdList;

    /**
     * 机构名称
     */
    private String organizationName;

    /**
     * sessionId
     */
    private String sessionId;

    /**
     * 角色类型（0超级管理员，1普通管理员，2自定义角色）
     */
    private Byte roleType;

    /**
     * 用户真实姓名
     */
    private String realName;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 用户来源 0 门户 1 后台
     */
    private Byte userSource;

    /**
     * 密码强度
     */
    private Byte passwordStrength;

    /**
     * 上一次登陆时间
     */
    private Date loginTime;

    /**
     * 登陆时间
     */
    private Date issueAt;


    /**
     * 0组织(拥有社会信用代码) 1部门
     */
    private Byte organizationType;

    /**
     * 用户角色集合
     */
    private Set<String> roles;

    /**
     * 当前登录用户支持查看的区域数据
     */
    private Map<String, String> authData;

    private Set<String> permissions;
}
